﻿namespace Resharper.Abstractions.CodeDom.TypeMembers.Functions
{
  using JetBrains.Annotations;
  using Resharper.Abstractions.CodeDom.Statements.Blocks;

  /// <summary>
  /// The <see cref="IFunction"/> interface.
  /// </summary>
  public interface IFunction : IParametersOwner
  {
    #region Properties

    /// <summary>
    /// Gets the body.
    /// </summary>
    [CanBeNull]
    Block Body { get; }

    /// <summary>
    /// Gets the type of the return.
    /// </summary>
    [CanBeNull]
    Type ReturnType { get; }

    #endregion
  }
}